package xiaoyang.service;

import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import xiaoyang.pojo.AppInfo;
import xiaoyang.pojo.AppVersion;

import java.util.List;

public interface AppInfoService {
    /**
     *管理者页面
     * @param softwareName
     * @param flatformId
     * @param categoryLevel1
     * @param categoryLevel2
     * @param categoryLevel3
     * @param pageIndex
     * @param pageSize
     * @return
     */
    public List<AppInfo> getInfoAll(String softwareName, Integer flatformId, Integer categoryLevel1, Integer categoryLevel2, Integer categoryLevel3, Integer pageIndex, Integer pageSize);

    /**
     * 管理者查询数据数量
     * @param softwareName
     * @param flatformId
     * @param categoryLevel1
     * @param categoryLevel2
     * @param categoryLevel3
     * @return
     */
    public int appInfoCount(@Param("softwareName")String softwareName,@Param("flatformId")Integer flatformId,@Param("categoryLevel1") Integer categoryLevel1,@Param("categoryLevel2") Integer categoryLevel2,@Param("categoryLevel3") Integer categoryLevel3);

    /**
     * 开发者页面
     * @param softwareName
     * @param flatformId
     * @param status
     * @param categoryLevel1
     * @param categoryLevel2
     * @param categoryLevel3
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PageInfo<AppInfo> getDevInfoAll(@Param("softwareName")String softwareName, @Param("flatformId")Integer flatformId, @Param("status")Integer status, @Param("categoryLevel1") Integer categoryLevel1, @Param("categoryLevel2") Integer categoryLevel2, @Param("categoryLevel3") Integer categoryLevel3, Integer pageNum, Integer pageSize);

    /**
     * 新增手游
     * @param appInfo
     * @return
     */
    public boolean appInfoAdd(AppInfo appInfo);

    /**
     * 查询APKName是否存在
     * @param APKName
     * @return
     */
    public AppInfo getApkName(String APKName);

    /**
     * 根据Id查询
     * @param id
     * @return
     */
    public AppInfo getIdAll(Integer id);

    /**
     * 修改手游信息
     * @param appInfo

     * @return
     */
    public boolean update(AppInfo appInfo);

    /**
     * 更新版本信息
     * @param appInfo
     * @return
     */
    public boolean updateVersion(AppInfo appInfo);

    /**
     * view
     */
   public AppInfo getAppInfoId(@Param("id") Integer id);

    /**
     * 删除手游
     * @param id
     * @return
     */
    public boolean devDel(Integer id);

    /**
     * 上架下架
     * @param id
     * @return
     */
    public  boolean xj(Integer id);

    /**
     * 上架
     * @param id
     * @return
     */
    public  boolean sj(@Param("id") Integer id);

    /**
     * 审核通过
     * @return
     */
    boolean auditPass( Integer id,Integer version);

    /**
     * 审核不通过
     * @return
     */
    boolean auditNoPass(Integer id,Integer version);

    /**
     * 修改审核不通过
     * @param id
     * @return
     */
    boolean upAuditNoPass(@Param("id") Integer id);




    /**
     * 查询版本
     * @param appId
     * @return
     */
    public List<AppVersion> getVersion(Integer appId);

    /**
     * 添加版本
     * @param appVersion
     * @return
     */
    public boolean versionAdd(AppVersion appVersion);

    /**
     * 修改版本
     */
    public boolean  upVersion (AppVersion appVersion);

    AppVersion appVersionId(Integer id);

    /**
     * 删除版本
     * @param appId
     * @return
     */
    boolean verDel(Integer appId);

    /**
     * 查询版本数量
     * @param appId
     * @return
     */
    int appIdCount(Integer appId);

    /**
     * 下载次数
     * @param id
     * @return
     */
    int updateDownloads(Integer id);

    boolean upImg(@Param("id") Integer id);

    boolean upApk(@Param("id") Integer id);
}
